package com.elric.mall.service;

import com.elric.mall.dto.DictionaryImportDto;
import com.elric.mall.dto.ZgBaseNltxNode;
import com.elric.mall.dto.ZgBaseSslyNode;
import com.elric.mall.dto.ZgProvincesNode;
import com.elric.mall.enums.ImportType;
import com.elric.mall.model.Dictionary;
import com.elric.mall.model.ZgBaseInfo;
import com.elric.mall.model.ZgBaseNltx;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.util.List;

/**
 * 实现功能：字典表服务层
 *
 * @author 作者[Yuxuan.he]
 * @version 1.0.00  2021-09-16 11:14
 */
public interface DictionaryService {

    /**
     * 创建
     */
    int create(Dictionary dictionary);

    /**
     * 更新
     */
    int update(Dictionary dictionary);

    /**
     * 根据ID获取详情
     */
    Dictionary findById(String id);

    /**
     * 根据类型查询字典数据
     * @param type
     * @return
     */
    List<Dictionary> findByType(String type);

    /**
     * 根据类型查询zg字典数据
     * @param type
     * @return
     */
    List<ZgBaseInfo> findZgDictByType(String type);

    /**
     * 树形结构通用查询
     * @return
     */
    List<ZgBaseNltxNode> findNltxTree(String tableName);

    /**
     * 行政区划树形查询
     * @return
     */
    List<ZgProvincesNode> findProvincesTree();

    /**
     * 根据ID删除
     */
    int delete(String id);

    /**
     * 分页查询
     */
    List<Dictionary> list(Integer pageSize, Integer pageNum, Dictionary dictionary);

    /**
     * excel导入
     * @param request
     * @return
     */
    List<DictionaryImportDto> importDocuments(MultipartHttpServletRequest request);

    /**
     * 批量插入
     * @param list
     * @param importType
     * @return
     */
    int insertBatch(List<Dictionary> list, ImportType importType);
}
